package com.lufei.message_system.Data.MbtiTypeDescriptionVD;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

@Data
@Schema(name = "MBTI类型更新DTO", description = "用于更新MBTI类型描述的请求参数")
public class MbtiTypeDescriptionUpdateDTO {
    @Pattern(regexp = "^(建筑师|逻辑学家|指挥官|辩论家|调停者|保护者|探险家|观察者|成就者|执行者|监督者|协调者|分析者|创新者|管理员|企业家)$", message = "类型名称必须是允许的16种类型之一")
    @Size(min = 1, max = 50, message = "类型名称长度必须在1-50个字符之间")
    @Schema(description = "类型名称（支持精确查询）", example = "建筑师",
            allowableValues = {"建筑师", "逻辑学家", "指挥官", "辩论家", "调停者", "保护者", "探险家", "观察者", "成就者", "执行者", "监督者", "协调者", "分析者", "创新者", "管理员", "企业家"})
    private String typeName;

    @Size(min = 1, max = 2000, message = "描述内容长度必须在1-2000个字符之间")
    @Schema(description = "类型详细描述", example = "更新后的描述内容...")
    private String description;

    @Size(min = 1, max = 2000, message = "模式内容长度必须在1-2000个字符之间")
    @Schema(description = "模式", example = "更新后的模式内容...")
    private String model;

    @Size(min = 1, max = 2000, message = "工作环境倾向性长度必须在1-2000个字符之间")
    @Schema(description = "工作环境倾向性", example = "更新后的工作环境倾向性...")
    private String workEnvironmentPreferences;

    @Size(min = 1, max = 2000, message = "缺点内容长度必须在1-2000个字符之间")
    @Schema(description = "缺点", example = "更新后的缺点内容...")
    private String weakness;

    @Size(min = 1, max = 2000, message = "发展建议长度必须在1-2000个字符之间")
    @Schema(description = "发展建议", example = "更新后的发展建议...")
    private String developmentSuggestions;

    @Size(min = 1, max = 2000, message = "适合的领域长度必须在1-2000个字符之间")
    @Schema(description = "适合的领域", example = "更新后的适合领域...")
    private String filed;

    @Size(min = 1, max = 2000, message = "适合的职业长度必须在1-2000个字符之间")
    @Schema(description = "适合的职业", example = "更新后的适合职业...")
    private String career;
}